package utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @program: util
 * @description: 一些字符串处理方法
 * @author: zhouliangliang
 * @create: 2018-10-23 21:47
 **/
public class StringUtil {

    /**
     * 去掉字符串末尾的多个相同的字符
     * @param value
     * @param trimedStr
     * @return
     */
    public static String trimEnd(String value, char trimedStr) {
        int len = value.length();
        int st = 0;
        while ((st < len) && value.charAt(len - 1) == trimedStr) {
            len--;
        }
        return value.substring(0, len);
    }

    /**
     * 去掉字符串开头的多个相同字符
     * @param value
     * @param trimedStr
     * @return
     */
    public static String trimFirst(String value, char trimedStr) {
        int len = value.length();
        int st = 0;
        int index = 0;
        while ((st < len) && value.charAt(st) == trimedStr) {
            st++;
            index++;
        }
        return value.substring(index);
    }

    /**
     * 去掉开头和结尾的多个相同字符
     */
    public static String trim(String value, char trimedStr) {
        return  trimFirst(trimEnd(value, trimedStr), trimedStr);
    }

    /**
     * 验证字符串是否包含中文
     * 是 true
     * 否 false
     */
    public static boolean checkIsContainChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }

    /**
     * 用给定的参数，替换content里的{}
     * @param content
     * @param params
     * @return
     */
    public static String messageFormat(String content, Object ...params) {
        String result = content;
        for(Object param : params) {
            result = result.replaceFirst("\\{\\}", param.toString());
        }
        return result;
    }
}
